﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Jungle.Code.BLL;
using Jungle.Code.Utils;
using System.Collections.Generic;
using Jungle.Code.DAL;
using Jungle.Code.Core;
using System.Text;
using System.Security.Cryptography;

using Jungle.Prodamo.Core;
using Jungle.Prodamo.MostNeedFunctions;
using Jungle.Prodamo.PaySystem;

	public partial class User : BaseUserModule
	{
        SessionKeeper thisSession = new SessionKeeper();
        protected override void OnInit(EventArgs e)
        {
            btn_Enter.PostBackUrl = Request.RawUrl;
            btn_Go.PostBackUrl = Request.RawUrl;

            thisSession.SessionId = Session.SessionID.ToString();
            thisSession.GetData();
            if (thisSession.UserId != -1) Response.Redirect(UrlHelper.GetSiteUrl());
            base.OnInit(e);
        }

        protected void FastEnter(object sender, EventArgs e)
        {
            UserManager um = new UserManager();
            um.FastKey = tb_FastKey.Text;
            um.GetByFastKey();

            if (um.UserId != 0)
            {
                if (um.Login())
                {
                    thisSession.UserId = um.UserId;
                    thisSession.SessionId = Session.SessionID.ToString();
                    thisSession.UserLogin = um.NickName;
                    thisSession.AdminLogin = "none";
                    thisSession.Create();

                    Session.Contents["freshEnter"] = "true";
                    Response.Redirect(UrlHelper.GetSiteUrl());
                }
            }
            else
            {
                ValidBlock.InnerHtml = "Вы ввели некорректный код";
            }

        }
        protected void FastRegister(object sender, EventArgs e)
        {
            if (tb_email.Text.IndexOf("@") != -1)
            {
                UserManager um = new UserManager();
                um.NickName = tb_email.Text.Trim();
                um.Email = tb_email.Text.Trim();
                um.GetAll();
                bool valid = true;
                foreach (UserManager u in um.UserList)
                {
                    if (u.Email == um.Email)
                    {
                        valid = false;
                        break;
                    }
                }
                if (!um.CheckNickName() || !valid) { ValidBlock.InnerHtml = "Введенный е-мейл уже зарегестрирован в базе данных, пожалуйста, воспользуйтесь другим электронным почтовым адресом"; }
                else
                {
                    string password = GetRandom("");
                    um.Fname = "Безымянный";
                    um.Oname = "Безымянный";
                    um.Iname = "Безымянный";
                    um.Email = um.NickName;
                    um.Sex = true;
                    um.Organization = "NONE";
                    um.Edrpou = "NONE";
                    um.WorkTime = "NONE";
                    um.Web = "NONE";
                    um.Logo = "NONE";
                    um.Map = "~/Images/1px.gif";
                    um.Deliver = "";
                    um.Credit = "";
                    um.Country = "1";
                    um.Zip = "00000";
                    um.City = "1";
                    um.Address = "нет";
                    um.Phone = "";
                    um.Faks = "";
                    um.BirthDay = DateTime.Now;
                    um.Password = Functions.getMd5Hash(password);
                    um.UsertType = true;
                    um.FastKey = GetRandom("");
                    um.Add();

                    Account acc = new Account();
                    acc.CreateAccount(um.UserId);

                    string body = "Вы были зарегистрированы на prodamo.com. Данные для доступа: Login:" + um.NickName + ". Password: " + password + ". Ключ быстрого доступа: " + um.FastKey;
                    um.SendEmail(um.Email, "prodamo.com: подтверждение регистрации", body);

                    tr1.Visible = false;
                    tr2.Visible = true;
                }
            }
            else ValidBlock.InnerHtml = "Вы ввели некорректный email";
        }
        protected string GetRandom(string str)
        {
            string mask = "1234567890qwertyuiopasdfghjklzxcvbnm";
            System.Random rnd = new Random();
            for (int i = 0; i < 6; i++)
            {
                str += mask[rnd.Next(0, 35)];
            }
            return str;
        }
	}
